// 编写算法来查找字符串数组中的最长公共前缀，
// 如果不存在公共前缀，返回空字符串 ""。

// 暴露接口
function longestCommonPrefix(strs: string[]): string {
    // 安全检测
    if (strs.length < 1) {
        return "";
    }
    let res: string = strs[0]// 将最长公共前缀初始化为第一个子串
    // 主循环
    for (let i = 1; i < strs.length; i++) {
        if (res === "") return res;// 子串为空就直接返回
        res = res.substring(0, strs[i].length);// 最长公共前缀不可能长于任意子串
        // 将每个子串与公共前缀进行比对
        for (let j = 0; j < strs[i].length; j++) {
            if (res[j] !== strs[i][j]) {
                res = res.substring(0, j);// 裁剪去不匹配的部分
                break;
            }
        }
    }
    return res;
};

// 看代码注释，应该比较直观简单，就是两层遍历